#ifndef __DAY05_LINK_H_
#define __DAY05_LINK_H_
#include <iostream>
using namespace std;
#define TEMP_CLASS(type) template <class type> \
link<type>
#define TEMP_pb_func(type, ret) template <class T> \
ret link<T>

template <class T3>
struct node
{
    T3 data;
    struct node<T3> *next;
};
template <class T>
class link
{
    template <class T1>
    friend ostream &operator<<(ostream &out, link<T1> &lk);

public:
    link();
    ~link();

public:
    void insertHead(T data);

private:
    node<T> *nd;
};


template <class T1>
ostream &operator<<(ostream &out, link<T1> &lk);

#endif
